[INFO] cloning repository https://github.com/datsuns/rust-learning
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/datsuns/rust-learning" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatsuns%2Frust-learning", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatsuns%2Frust-learning'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5f7e26fd7aa2a0a203f61679370fc4b182c3b9f2
[INFO] fixing datsuns/rust-learning against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdatsuns%2Frust-learning" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/datsuns/rust-learning
[INFO] finished tweaking git repo https://github.com/datsuns/rust-learning
[INFO] tweaked toml for git repo https://github.com/datsuns/rust-learning written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/datsuns/rust-learning on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/datsuns/rust-learning already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b
[INFO] running `Command { std: "docker" "start" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]     Checking exercise_03_borrowing_slices v0.1.0 (/opt/rustwide/workdir/exercises/03_borrowing_slices)
[INFO] [stderr]     Checking exercise01_cargo_syntax_modules v0.1.0 (/opt/rustwide/workdir/exercises/01_cargo_syntax_modules)
[INFO] [stderr]     Checking exercise_07_error_handling v0.1.0 (/opt/rustwide/workdir/exercises/07_error_handling)
[INFO] [stderr]     Checking exercise_10_concurrency v0.1.0 (/opt/rustwide/workdir/exercises/10_concurrency)
[INFO] [stderr]     Checking exercise_04_lifetimes v0.1.0 (/opt/rustwide/workdir/exercises/04_lifetimes)
[INFO] [stderr]     Checking exercise12_macros v0.1.0 (/opt/rustwide/workdir/exercises/12_macros)
[INFO] [stderr]     Checking exercise_09_smart_pointers v0.1.0 (/opt/rustwide/workdir/exercises/09_smart_pointers)
[INFO] [stderr]     Checking exercise_06_iterators_closures v0.1.0 (/opt/rustwide/workdir/exercises/06_iterators_closures)
[INFO] [stderr]     Checking exercise_02_ownership v0.1.0 (/opt/rustwide/workdir/exercises/02_ownership)
[INFO] [stderr]     Checking exercise_08_traits_generics v0.1.0 (/opt/rustwide/workdir/exercises/08_traits_generics)
[INFO] [stderr]     Checking exercise_05_enums_pattern_matching v0.1.0 (/opt/rustwide/workdir/exercises/05_enums_pattern_matching)
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> exercises/09_smart_pointers/src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> exercises/09_smart_pointers/src/lib.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking exercise13_unsafe_ffi v0.1.0 (/opt/rustwide/workdir/exercises/13_unsafe_ffi)
[INFO] [stdout] warning: unused variable: `factor`
[INFO] [stdout]   --> exercises/06_iterators_closures/src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let factor = 3;
[INFO] [stdout]    |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_factor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `result`
[INFO] [stdout]   --> exercises/01_cargo_syntax_modules/src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     let result = a;
[INFO] [stdout]    |         ------ first assignment to `result`
[INFO] [stdout] 10 |     result = result + b;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout]  9 |     let mut result = a;
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0384`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercise01_cargo_syntax_modules` (lib test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> exercises/03_borrowing_slices/src/lib.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0384]: cannot assign twice to immutable variable `result`
[INFO] [stdout]   --> exercises/01_cargo_syntax_modules/src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     let result = a;
[INFO] [stdout]    |         ------ first assignment to `result`
[INFO] [stdout] 10 |     result = result + b;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable
[INFO] [stdout]    |
[INFO] [stdout] help: consider making this binding mutable
[INFO] [stdout]    |
[INFO] [stdout]  9 |     let mut result = a;
[INFO] [stdout]    |         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0384`.
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> exercises/04_lifetimes/src/lib.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest(x: &str, y: &str) -> &str {
[INFO] [stdout]    |                   ----     ----     ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `x` or `y`
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |               ++++     ++          ++          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> exercises/04_lifetimes/src/lib.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub content: &str,
[INFO] [stdout]    |                  ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 19 ~ pub struct BookExcerpt<'a> {
[INFO] [stdout] 20 ~     pub content: &'a str,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> exercises/03_borrowing_slices/src/lib.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |         let mut data = String::from("original");
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> exercises/03_borrowing_slices/src/lib.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let s = String::from("Hello, Rust world!");
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> exercises/04_lifetimes/src/lib.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest(x: &str, y: &str) -> &str {
[INFO] [stdout]    |                   ----     ----     ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout]    = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from `x` or `y`
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |               ++++     ++          ++          ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> exercises/03_borrowing_slices/src/lib.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let v = vec![1, 2, 3, 4, 5];
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0106]: missing lifetime specifier
[INFO] [stdout]   --> exercises/04_lifetimes/src/lib.rs:20:18
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub content: &str,
[INFO] [stdout]    |                  ^ expected named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] help: consider introducing a named lifetime parameter
[INFO] [stdout]    |
[INFO] [stdout] 19 ~ pub struct BookExcerpt<'a> {
[INFO] [stdout] 20 ~     pub content: &'a str,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]   --> exercises/13_unsafe_ffi/src/lib.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn raw_pointer_dereference(addr: *const i32) -> i32 {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercise01_cargo_syntax_modules` (lib) due to 1 previous error
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Message::Move { .. }` and `Message::ChangeColor(_, _, _)` not covered
[INFO] [stdout]   --> exercises/05_enums_pattern_matching/src/lib.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 |     match msg {
[INFO] [stdout]    |           ^^^ patterns `Message::Move { .. }` and `Message::ChangeColor(_, _, _)` not covered
[INFO] [stdout]    |
[INFO] [stdout] note: `Message` defined here
[INFO] [stdout]   --> exercises/05_enums_pattern_matching/src/lib.rs:7:10
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum Message {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout]  8 |     Quit,
[INFO] [stdout]  9 |     Move { x: i32, y: i32 },
[INFO] [stdout]    |     ---- not covered
[INFO] [stdout] 10 |     Write(String),
[INFO] [stdout] 11 |     ChangeColor(i32, i32, i32),
[INFO] [stdout]    |     ----------- not covered
[INFO] [stdout]    = note: the matched value is of type `Message`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
[INFO] [stdout]    |
[INFO] [stdout] 19 ~         Message::Write(text) => text,
[INFO] [stdout] 20 ~         Message::Move { .. } | Message::ChangeColor(_, _, _) => todo!(),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_sentence`
[INFO] [stdout]   --> exercises/04_lifetimes/src/lib.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let first_sentence = novel.split('.').next().expect("Could not find a sentence");
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_sentence`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0106`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercise_04_lifetimes` (lib) due to 2 previous errors
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> exercises/10_concurrency/src/lib.rs:44:24
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let (tx, rx) = mpsc::channel();
[INFO] [stdout]    |                        ^^^^^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `channel`
[INFO] [stdout]    |
[INFO] [stdout] help: consider specifying a concrete type for the type parameter `T`
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let (tx, rx) = mpsc::channel::</* Type */>();
[INFO] [stdout]    |                                     ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercise_04_lifetimes` (lib test) due to 2 previous errors; 1 warning emitted
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> exercises/08_traits_generics/src/lib.rs:31:18
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn notify<T>(item: &T) {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> exercises/10_concurrency/src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     for val in numbers {
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum_clone`
[INFO] [stdout]   --> exercises/10_concurrency/src/lib.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |         let sum_clone = Arc::clone(&sum);
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sum_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user`
[INFO] [stdout]   --> exercises/12_macros/src/lib.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let user = User {
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_user`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `consume_string` is never used
[INFO] [stdout]  --> exercises/02_ownership/src/lib.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn consume_string(s: String) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercise_05_enums_pattern_matching` (lib) due to 1 previous error
[INFO] [stderr] error: could not compile `exercise_10_concurrency` (lib test) due to 1 previous error; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b", kill_on_drop: false }`
[INFO] [stdout] 3e7aed2edac45db32154e5b4574a65bb502287bc8622ea2fd512f3481bdf6f7b
